約 2,568,827 件
https://w.atwiki.jp/opengles/pages/23.html
OpenGL® ES is a software interface to graphics hardware. The interface consists of a set of procedures and functions that allow a programmer to specify the objects and operations involved in producing high-quality graphical images, specifically color images of three-dimensional objects. [n.n.n] refers to sections and tables in the OpenGL ES 2.0 specification. [n.n.n] refers to sections in the OpenGL ES Shading Language 1.0 specification. Specifications are available at www.opengl.org/registry/gles
https://w.atwiki.jp/nkym_memo/pages/149.html
qmake -project qmake Qt Reference Documentation http //www.kde.gr.jp/~ichi/qt/index.html
https://w.atwiki.jp/bambooflow/pages/321.html
QtでOpenGL:タイマーを使ったアニメーション QtでOpenGL:タイマーを使ったアニメーション概要 ソースコード 概要 QGLWidgetのpaintGL()はupdateGL()がシグナルとなって呼ばれます。 ここではタイマーを使って一定間隔ごとにupdateGL()を呼ぶことでアニメーションさせます。 タイマーは、QBasicTimerクラスを用います。 QBasicTimer 使い方は下記の通りです。 #include QBasicTimer QBasicTimer timer; void GLWidget initializeGL() { //タイマーの開始、間隔を16ms(≒60fps)に設定 timer.start(16, this); } void GLWidget timerEvent(QTimerEvent *e) { Q_UNUSED(e); updateGL(); } このとき、timer.startの第一引数がタイマーの間隔で、第二引数がtimerEventメソッドを持つオブジェクトを渡します。 ここではGLWidgetのメソッドとしてtiemrEventを用意しているので、第二引数はthisとします。 ソースコード glwidget.h #ifndef GLWIDGET_H #define GLWIDGET_H #include QGLWidget #include QVector3D #include QBasicTimer class GLWidget public QGLWidget { Q_OBJECT public GLWidget(QWidget *parent = 0); ~GLWidget(); protected void timerEvent(QTimerEvent *e); protected virtual void initializeGL(); virtual void resizeGL( int w, int h ); virtual void paintGL(); GLuint createCube(); private QBasicTimer *timer; private GLfloat angle; GLuint cubeList; }; #endif // GLWIDGET_H glwidget.cpp #include "glwidget.h" #include math.h GLWidget GLWidget(QWidget *parent) QGLWidget(parent), timer(new QBasicTimer) { } GLWidget ~GLWidget() { delete timer; timer = 0; } void GLWidget timerEvent(QTimerEvent *e) { Q_UNUSED(e); updateGL(); } void GLWidget initializeGL() { glClearColor(0.5, 0.5, 0.5, 1.0); glEnable(GL_DEPTH_TEST); //カリング:表面のみ表示 glEnable(GL_CULL_FACE); glCullFace(GL_BACK); //光源有効 glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); //光源の設定 GLfloat light_position[] = { -50.0, 50.0, 50.0, 1.0 }; GLfloat light_ambient[] = { 0.2, 0.2, 0.2, 1.0 }; GLfloat light_diffuse[] = { 1.0, 1.0, 1.0, 1.0 }; GLfloat light_specular[] = { 1.0, 1.0, 1.0, 1.0 }; glLightfv( GL_LIGHT0, GL_POSITION, light_position ); glLightfv( GL_LIGHT0, GL_AMBIENT, light_ambient ); glLightfv( GL_LIGHT0, GL_DIFFUSE, light_diffuse ); glLightfv( GL_LIGHT0, GL_SPECULAR, light_specular ); cubeList = createCube(); timer- start(16, this); // タイマー開始 } void GLWidget resizeGL( int w, int h ) { glViewport(0, 0, w, h); //プロジェクション・マトリックス設定 glMatrixMode (GL_PROJECTION); glLoadIdentity(); gluPerspective(30.0, (double)w / (double)h, 1.0, 100.0); } void GLWidget paintGL() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //モデル・ビュー・マトリックス設定 glMatrixMode (GL_MODELVIEW); glLoadIdentity(); //カメラ設定 gluLookAt(3.0, 4.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); glPushMatrix(); { // 直方体の表示 //材質設定 GLfloat red[] = { 0.8, 0.2, 0.2, 1.0 }; glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, red); glRotatef(angle, 0.0, 1.0, 0.0); // 回転 //glCallList(cubeList); glCallList(sphereList); } glPopMatrix(); angle = (angle 360.0) ? angle-360.0 angle+1; } GLuint GLWidget createCube() { GLuint index = glGenLists(1); float lx = 0.5f; float ly = 0.5f; float lz = 0.5f; glNewList(index, GL_COMPILE); // sides glBegin (GL_TRIANGLE_STRIP); glNormal3f (-1,0,0); glVertex3f (-lx,-ly,-lz); glVertex3f (-lx,-ly,lz); glVertex3f (-lx,ly,-lz); glVertex3f (-lx,ly,lz); glNormal3f (0,1,0); glVertex3f (lx,ly,-lz); glVertex3f (lx,ly,lz); glNormal3f (1,0,0); glVertex3f (lx,-ly,-lz); glVertex3f (lx,-ly,lz); glNormal3f (0,-1,0); glVertex3f (-lx,-ly,-lz); glVertex3f (-lx,-ly,lz); glEnd(); // top face glBegin (GL_TRIANGLE_FAN); glNormal3f (0,0,1); glVertex3f (-lx,-ly,lz); glVertex3f (lx,-ly,lz); glVertex3f (lx,ly,lz); glVertex3f (-lx,ly,lz); glEnd(); // bottom face glBegin (GL_TRIANGLE_FAN); glNormal3f (0,0,-1); glVertex3f (-lx,-ly,-lz); glVertex3f (-lx,ly,-lz); glVertex3f (lx,ly,-lz); glVertex3f (lx,-ly,-lz); glEnd(); glEndList(); return index; }
https://w.atwiki.jp/motodic/pages/246.html
qt(クォート) 体積の単位。 車関係で主に見かけるのは米国内での燃料や潤滑油の計量単位で、この場合 1qt = 1/4gal = 32oz = 0.946352L = 946.352ml という定義になっている。 英語のフルスペルは「quart(U.S. fluid quart)」。 関連語 「単位(2)」「gal」「l」「ml」「oz」 2007年04月30日
https://w.atwiki.jp/guru/pages/52.html
はじめに C++でGUIプログラミングを行います。 ただし、C++の標準ライブラリにはGUIのためのライブラリがありません。 C++でGUIプログラミングをするためのライブラリは色々ありますが、ここではQtというライブラリを使用します。 参考リンク:Qt (Wikipedia) 対象者 C++の文法が理解できる コンテンツ +開発環境のインストール 開発環境のインストール 下記のサイトからLGPl/Free版のQt SDK最新版をダウンロードしてインストールする。 http //qt.nokia.com/downloads-jp ※ 本稿執筆時の最新版はQt SDK 2009.04 (qt-sdk-win-opensource-2009.04.exe) ですが、なぜかQt Creatorが日本語化されていません。 日本語で使いたい場合は、下記サイトからQt SDK 2009.03 (qt-sdk-win-opensource-2009.03.1.exe) をダウンロードしてきて使いましょう。 http //get.qt.nokia.com/qtsdk/ 日本語化に関して情報をお持ちの方はトップページ最下部のコメントフォームからご連絡をお願いします。 +Hello World Hello World 解説文はそのうち書きます。 #include QApplication #include QLabel int main(int argc, char **argv) { QApplication app(argc, argv); // アプリケーションのリソース管理をするクラス QLabel *label = new QLabel("Hello world."); // Widget (ラベル) label- show(); // Widgetを表示 return app.exec(); // イベントループ}
https://w.atwiki.jp/hwiki/pages/14.html
Qtとは Qtとは クロスプラットフォームなウィジットツールキットです. カウンタ -
https://w.atwiki.jp/bambooflow/pages/156.html
Qt4でファイル読み込み ファイル・ビュー(GUI)画面イメージ ソース コンパイル&実行 Qt4でファイル読み込み #include QFile #include QTextStream #include iostream int main( int argc, char* argv[] ) { QFile file( "file.txt" ); if (!file.open(QIODevice ReadOnly | QIODevice Text)) { std cout "can not open file." std endl; return 0; } int n = 0; QTextStream in( file ); while (!in.atEnd()) { QString line = in.readLine(); std cout n " " line.toStdString() std endl; n++; } return 0; } file.txt aaa bbb ccc あああ いいい ううう zzz 実行結果 0 aaa 1 bbb 2 ccc 3 4 5 6 zzz ファイル・ビュー(GUI) 画面イメージ ソース ReadFile_gui.tgz MainForm.ui Designerで作成 MainForm.h MainForm.cpp main.cpp MainForm.cppの表示関数抜粋 void MainForm slot_textView() { QString fileName; fileName = fileNameLine- text(); std cout "file " fileName.toStdString() std endl; QFile file( fileName ); if (file.open(QIODevice ReadOnly | QIODevice Text)) { viewText- clear(); QTextStream in( file ); while (!in.atEnd()) { QString line = in.readLine(); // テキスト追加 viewText- append( line ); } } else { std cout "can not open file." std endl; } } コンパイル&実行 $ qmake -project $ qmake $ make $ ./ReadFile_gui
https://w.atwiki.jp/froyale/pages/55.html
【名前】QT 【出典】スペース☆ダンディ 【種族】ロボット 【性別】男性 【声優】佐武宇綺 【外見】 【性格】 【口調】 【備考】 以下、本編での活躍など +開示する 本編における動向 初登場話 死亡話 登場話数 スタンス 現在状況 キャラとの関係 キャラ名 関係 呼び方 解説 初遭遇話 [[]]
https://w.atwiki.jp/sasasa123/pages/522.html
QT砲 / QT Cannon テト譜 このテンプレのポイント O土台 片側セットアップ率94.44% 左右反転込みセットアップ率97.14% 2巡目以降TSD→TSTとTDアタック派生がすべて確定していて、肝心の1巡目もほとんど積めてしまう片側だけでもかなり積めるセットアップ率のかなりの高さはDQ砲にはない 2巡目が分かりやすい 2巡目を変則的に積むと3巡目に8段TSTパフェが狙える(33.33%) このテンプレの弱み 2巡目のJミノの前に左端にペナルティブロックの下穴を受けると3巡目TSTが破綻するリカバリー方法DQ砲ではその心配はない TDアタック派生で、3巡目のルート次第では4巡目の積みが事故ることがある最低限3ルートで完結するが、下の「TDアタック派生ができる3巡目の積み方一覧」テト譜から確認できるおまけルートもいくつか加えて地形重視にするとある程度改善される画像にある3ルートの中でも左から順番に優先するといい 3ページ目、SミノとOミノを積んだ後でJミノを積む前のIミノの後入れ→テト譜 派生一覧 すべてDQ砲でも可能 2巡目正規ルートTDアタック派生ができる3巡目の積み方一覧 2巡目変則ルート3巡目8段パフェ狙い 新QT砲パフェパターン4ページ目 パフェパターン6ページ目 パフェパターン8ページ目 テンプレ概要 名前の由来2巡目のTミノとJミノ以外を積んだときの機構の空洞が「q」に見えたことから 類似関係 DQ砲 - 2巡目合流 Cerise Stacking - 2巡目合流 アルバトロスSP その他
https://w.atwiki.jp/quicktimeprogramer/
raw movieをQuickTimeのH.264 codecを使って圧縮するMac用プログラム。現状ffmpegをフロントエンドに使ったコマンドラインで、パス数指定ができます。 バイナリー ソースコード プロジェクトファイルも入っていますので、Xcode2.2以降(インストールオプションで10.4 Universal SDKを追加)が入っていれば、プロジェクトメニューから「アクティブなビルド構成を設定= Release 」を選んで、ワンクリックでビルド出来ます。 2006.1.21 Universal Binaryにしました。変更3カ所のみ! 2006.1.23 mplayerをfront endに使うには... mplayerにパッチ当てちゃえ。ファイル名が"-"だったらstdoutに出す。 % raw2qt264 2 1000 "mplayer in.mpg -vo yuv4mpeg file=-" out.mov と思ったらmplayer、stdoutに色々出すのね。raw2qt264でrawデータ以外は捨てる様にしました。が、なぜかmplayerのraw出力は初めの2コマが緑...orz --- vo_yuv4mpeg.20060123.c2006-01-23 11 14 04.000000000 +0900 +++ vo_yuv4mpeg.c2006-01-23 11 14 25.000000000 +0900 @@ -142,7 +142,10 @@ write_bytes = image_width * image_height * 3 / 2; image = malloc(write_bytes); -yuv_out = fopen(yuv_filename, "wb"); +if(strcmp(yuv_filename, "-") != 0) +yuv_out = fopen(yuv_filename, "wb"); +else +yuv_out = stdout; if (!yuv_out || image == 0) { mp_msg(MSGT_VO,MSGL_FATAL, 2006.2.9 圧縮設定研究中 kICMCompressionSessionOptionsPropertyID_MaxKeyFrameInterval 300固定にしてますが、デフォルトの0(automatic)なら、自動的にシーンチェンジでキーフレーム(I-frame)入れてくれてました(MovieVideoChartで確認)。 kICMCompressionSessionOptionsPropertyID_Depth デフォルトk24RGBPixelFormatなんですが、ソースのrawvideoが420なんでk2vuyPixelFormat(2vuy)でも情報量的にはいいハズ。で、やってみると、Codec対応しているのか、指定レートよりかなり小さくなっちゃうけど(バグ?)、HDDは稼げます。見た目も変わらん(様に見える)。 kICMCompressionSessionOptionsPropertyID_Quality AppleのQAによると、codecNormalQualityがデフォルトなんで、codecMaxQualityとか指定してみたが、圧縮時間も見た目も変わらず。 画質的を見るのに客観的な評価ソフトが必要ですね... 2006.3.10 Decompress Sessionで、ガンマ値を設定すれば白くならない。コマンドの引数がに必要か。 Fixed gammaLevel = kQTCCIR601VideoGammaLevel; // = 2.2 ICMImageDescriptionSetProperty(imageDesc, kQTPropertyClass_ImageDescription, kICMImageDescriptionPropertyID_GammaLevel, sizeof(gammaLevel), gammaLevel); コメント 初めの2コマが緑の件。libmpeg2 decoder delayというものがあるそうです。"-vfm ffmpeg"で回避できる可能性があります。デフォルトは"-vfm libmpeg2" -- ばる (2006-01-26 21 57 23) "-vfm ffmpeg"でやってみました。緑のコマは1コマに減りました... Using (default) progressive frame mode.========================================================================== Trying to force video codec driver family ffmpeg... Opening video decoder [ffmpeg] FFmpeg s libavcodec codec family Selected video codec [ffmpeg2] vfm ffmpeg (FFmpeg MPEG 2) QuickTimeのバージョンが7.1超えた頃からエンコード結果が変になってしまっているのですが…。 -- Yoshiki (2006-07-31 21 31 24) ソースによって指定サイズを守らない、って奴でしょうか?実はパス数/ビットレートを0でQTにまかせるようにしてから(リンク先は今日更新しました)、指定のテストしてないんです。 -- 名無しさん (2006-08-03 06 52 15) 前のバージョンでは7.1以上だとブロックノイズ状の画像破綻が断続的に発生してました。新しいバージョンだとパス指定もビットレート指定も無視されますね…。以上、遅くなりましたが報告です。 -- Yoshiki (2006-08-23 22 59 42) 使い方 % raw2qt264 Pass Kbps rawCommand outFile.mov rawCommandはyuv4mpegpipe形式をstdoutに出す命令です。 inFile.mpgを2パス、1000KbpsでoutFile.movに変換 % raw2qt264 2 1000 "ffmpeg -i inFile.mpg -vcodec rawvideo -f yuv4mpegpipe -" outFile.mov ffmpegでインターレース解除,640x480にスケース,90%クロップ % raw2qt264 2 1000 "ffmpeg -i inFile.mpg -deinterlace -s 640x480 -croptop 24 -cropbottom 24 -cropleft 32 -cropright 32 -vcodec rawvideo -f yuv4mpegpipe -" outFile.mov メモ 自分でプライオリティーを下げています。 setpriority(PRIO_USER, 0, 10); 圧縮設定は createCompressionSession() で行っており、設定出来る項目と説明は以下にあります。 /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/QuickTime.framework/Versions/A/Headers/ImageCompression.h の、Properties of compression sessions options objects. Key frame rate (Iフレーム出現間隔)は300コマ(NTSCなら10秒)に1コマに指定。 err = ICMCompressionSessionOptionsSetMaxKeyFrameInterval(sessionOptions, 300); MaxPartialSyncFrameInterval・AllowFrameTimeChanges・DataRateLimits(Hard limit)等、興味深い設定もありますが、デフォルトのままにしています。 以下のAppleのサンプルコードを参考に作りました。 http //developer.apple.com/samplecode/CaptureAndCompressIPBMovie/CaptureAndCompressIPBMovie.html 先日QuickTime Session APIのドキュメントも色々出てきました。 http //developer.apple.com/qa/qa2005/qa1450.html http //developer.apple.com/qa/qa2005/qa1455.html http //developer.apple.com/qa/qa2005/qa1460.html http //developer.apple.com/qa/qa2005/qa1456.html ffmpegメモ ffmpegでrawvideoなmovなりaviを作ったときに、QTPlayerで開けるようにするには、-vtag j420とする。 % ffmpeg -i in.mpg -acodec pcm_s16le -vcodec rawvideo -vtag j420 -deinterlace out.mov % ffmpeg -i in.mpg -acodec pcm_s16le -vcodec rawvideo -vtag j420 -deinterlace out.avi Visitors -